home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr22 / gnplt.zip / PROB.DEM < prev    next >
Text File  |  1993-05-11  |  23KB  |  793 lines

  1. #
  2. # $Id: prob.demo 3.38.2.32 1992/12/04 18:33:59 woo Exp $
  3. #
  4. # Demo Statistical Functions version 2.3
  5. #
  6. # Permission granted to distribute freely for non-commercial purposes only
  7. #
  8. # Copyright (c) 1991, 1992 Jos van der Woude, jvdwoude@hut.nl
  9.  
  10. pause 0 "                   Statistical Library Demo, version 2.3"
  11. pause 0 ""
  12. pause 0 "          Copyright (c) 1991, 1992, Jos van de Woude, jvdwoude@hut.nl"
  13. pause 0 "Permission granted to distribute freely for non-commercial purposes only"
  14. pause 0 ""
  15. pause 0 ""
  16. pause 0 ""
  17. pause 0 ""
  18. pause 0 ""
  19. pause 0 ""
  20. pause 0 ""
  21. pause 0 ""
  22. pause 0 ""
  23. pause 0 ""
  24. pause 0 ""
  25. pause 0 ""
  26. pause 0 ""
  27. pause 0 ""
  28. pause 0 ""
  29. pause 0 "NOTE: contains 54 plots and consequently takes a lot of time to run"
  30. pause 0 "                      Press Ctrl-C to exit right now"
  31. pause -1 "                      Press Return to start demo ..."
  32.  
  33. save set "defaults.ini"
  34. load "stat.inc"
  35.  
  36. # Arcsinus PDF and CDF
  37. r = 2.0
  38. mu = 0.0
  39. sigma = r / sqrt2
  40. xmin = -r
  41. xmax = r
  42. ymax = 1.1 * r #No mode
  43. set nokey
  44. set zeroaxis
  45. set xrange [xmin : xmax]
  46. set yrange [0 : ymax]
  47. set xlabel "x ->"
  48. set ylabel "probability density ->"
  49. set xtics
  50. set ytics
  51. set format x "%.1f"
  52. set format y "%.1f"
  53. set sample 200
  54. set title "arcsin PDF with r = 2.0"
  55. plot arcsin(x)
  56. pause -1 "Hit return to continue"
  57. set title "arcsin CDF with r = 2.0"
  58. set yrange [0 : 1.1]
  59. plot carcsin(x)
  60. pause -1 "Hit return to continue"
  61.  
  62. # Beta PDF and CDF
  63. #p = 0.5; q = 0.7
  64. #mu = p / (p + q)
  65. #sigma = sqrt(p**q) / ((p + q ) * sqrt(p + q + 1.0))
  66. #xmin = 0.0
  67. #xmax = 1.0
  68. #Mode of beta PDF used
  69. #ymax = (p < 1.0 || q < 1.0) ? 2.0 : 1.1 * beta((p - 1.0)/(p + q - 2.0))
  70. set key
  71. set zeroaxis
  72. #set xrange [xmin : xmax]
  73. #set yrange [0 : ymax]
  74. set xlabel "x ->"
  75. set ylabel "probability density ->"
  76. set xtics
  77. set ytics
  78. set format x "%.1f"
  79. set format y "%.1f"
  80. set sample 100
  81. set title "beta PDF"
  82. plot [0:1] [0:5] p = 0.5, q = 0.7, beta(x) title "p = 0.5, q = 0.7", \
  83.                  p = 5.0, q = 3.0, beta(x) title "p = 5.0, q = 3.0", \
  84.                  p = 0.5, q = 2.5, beta(x) title "p = 0.5, q = 2.5"
  85. pause -1 "Hit return to continue"
  86. set title "incomplete beta CDF"
  87. plot [0:1] [0:1.1] p = 0.5, q = 0.7, cbeta(x) title "p = 0.5, q = 0.7", \
  88.                    p = 5.0, q = 3.0, cbeta(x) title "p = 5.0, q = 3.0", \
  89.                    p = 0.5, q = 2.5, cbeta(x) title "p = 0.5, q = 2.5"
  90. pause -1 "Hit return to continue"
  91.  
  92. # Binomial PDF and CDF
  93. n = 25; p = 0.15
  94. mu = n * p
  95. sigma = sqrt(n * p * (1.0 - p))
  96. xmin = int(mu - 4.0 * sigma)
  97. xmin = xmin < 0 ? 0 : xmin
  98. xmax = int(mu + 4.0 * sigma)
  99. ymax = 1.1 * binom(mu) #Mode of normal PDF used
  100. xinc = ceil((xmax - xmin) / 10)
  101. xinc = xinc > 1 ? xinc : 1
  102. set nokey
  103. set nozeroaxis
  104. set xrange [xmin : xmax]
  105. set yrange [0 : ymax]
  106. set xlabel "k ->"
  107. set ylabel "probability density ->"
  108. set xtics xmin + 0.499, xinc, xmax
  109. set ytics 0, ymax / 10, ymax
  110. set format x "%2.0f"
  111. set format y "%3.2f"
  112. set sample (xmax - xmin) + 1
  113. set title "binomial PDF with n = 25, p = 0.15"
  114. plot binom(x) with steps
  115. pause -1 "Hit return to continue"
  116. set title "binomial CDF with n = 25, p = 0.15"
  117. set yrange [0 : 1.1]
  118. set ytics 0, 1.1 / 10.5, 1.1
  119. plot cbinom(x) with steps
  120. pause -1 "Hit return to continue"
  121.  
  122. # Cauchy PDF and CDF
  123. #a = 0.0; b = 2.0
  124. #cauchy PDF has no moments
  125. #xmin = a - 4.0 * b
  126. #xmax = a + 4.0 * b
  127. #ymax = 1.1 * cauchy(a) #Mode of cauchy PDF used
  128. set key
  129. set zeroaxis
  130. #set xrange [xmin : xmax]
  131. #set yrange [0 : ymax]
  132. set xlabel "x ->"
  133. set ylabel "probability density ->"
  134. set xtics
  135. set ytics
  136. set format x "%.1f"
  137. set format y "%.2f"
  138. set sample 100
  139. set title "cauchy PDF"
  140. plot [-15:15] [0:0.2] a = 0, b = 2, cauchy(x) title "a = 0, b = 2", \
  141.                       a = 0, b = 4, cauchy(x) title "a = 0, b = 4"
  142. pause -1 "Hit return to continue"
  143. set title "cauchy CDF"
  144. plot [-30:30] [0:1.1] a = 0, b = 2, ccauchy(x) title "a = 0, b = 2", \
  145.                       a = 0, b = 4, ccauchy(x) title "a = 0, b = 4"
  146. pause -1 "Hit return to continue"
  147.  
  148. # Chi-square PDF and CDF
  149. #df1 = 4.0
  150. #mu = df1
  151. #sigma = sqrt(2.0 * df1)
  152. #xmin = mu - 4.0 * sigma
  153. #xmin = xmin < 0 ? 0 : xmin
  154. #xmax = mu + 4.0 * sigma
  155. #ymax = 1.1 * (df1 > 2.0 ? chi(df1 - 2.0) : 1.0) #Mode of chi PDF used
  156. set key
  157. set zeroaxis
  158. #set xrange [xmin : xmax]
  159. #set yrange [0 : ymax]
  160. set xlabel "x ->"
  161. set ylabel "probability density ->"
  162. set xtics
  163. set ytics
  164. set format x "%.1f"
  165. set format y "%.2f"
  166. set sample 100
  167. set title "chi-square PDF"
  168. plot [0:15] [0:0.2] df1 = 4, chi(x) title "df = 4", \
  169.                     df1 = 6, chi(x) title "df = 6", \
  170.                     df1 = 8, chi(x) title "df = 8"
  171. pause -1 "Hit return to continue"
  172. set title "chi-square CDF"
  173. plot [0:15] [0:1.1] df1 = 4, cchi(x) title "df = 4", \
  174.                     df1 = 6, cchi(x) title "df = 6", \
  175.                     df1 = 8, cchi(x) title "df = 8"
  176. pause -1 "Hit return to continue"
  177.  
  178. # Erlang PDF and CDF
  179. #lambda = 1.0; n = 2.0
  180. #mu = n / lambda
  181. #sigma = sqrt(n) / lambda
  182. #xmin = mu - 4.0 * sigma
  183. #xmin = xmin < 0 ? 0 : xmin
  184. #xmax = mu + 4.0 * sigma
  185. #ymax = n < 2.0 ? 1.0 : 1.1 * erlang((n - 1.0) / lambda) #Mode of erlang PDF used
  186. set key
  187. set zeroaxis
  188. #set xrange [xmin : xmax]
  189. #set yrange [0 : ymax]
  190. set xlabel "x ->"
  191. set ylabel "probability density ->"
  192. set xtics
  193. set ytics
  194. set format x "%.1f"
  195. set format y "%.1f"
  196. set sample 100
  197. set title "erlang PDF"
  198. plot [0:10] [0:1] lambda = 1, n = 2, erlang(x) title "lambda = 1, n = 2", \
  199.                   lambda = 2, n = 2, erlang(x) title "lambda = 2, n = 2"
  200. pause -1 "Hit return to continue"
  201. set title "erlang CDF"
  202. plot [0:10] [0:1.1] lambda = 1, n = 2, cerlang(x) title "lambda = 1, n = 2", \
  203.                     lambda = 2, n = 2, cerlang(x) title "lambda = 2, n = 2"
  204. pause -1 "Hit return to continue"
  205.  
  206. # Thanks to mrb2j@kelvin.seas.Virginia.EDU for telling us about this.
  207. # Extreme (Gumbel extreme value) PDF and CDF
  208. #alpha = 0.5; u = 1.0
  209. #mu = u + (0.577215665/alpha)   # Euler's constant
  210. #sigma = pi/(sqrt(6.0)*alpha)
  211. #xmin = mu - 4.0 * sigma
  212. #xmax = mu + 4.0 * sigma
  213. #ymax = 1.1 * extreme(u) #Mode of extreme PDF used
  214. set key
  215. set zeroaxis
  216. #set xrange [xmin : xmax]
  217. #set yrange [0 : ymax]
  218. set xlabel "x ->"
  219. set ylabel "probability density ->"
  220. set xtics
  221. set ytics
  222. set format x "%.1f"
  223. set format y "%.2f"
  224. set sample 100
  225. set title "extreme PDF"
  226. plot [-10:10] [0:0.4] alpha = 0.5, u = 1.0, extreme(x) title "alpha = 0.5, u = 1.0", \
  227.                       alpha = 1.0, u = 0.0, extreme(x) title "alpha = 1.0, u = 0.0"
  228. pause -1 "Hit return to continue"
  229. set title "extreme CDF"
  230. plot [-10:10] [0:1.1] alpha = 0.5, u = 1.0, cextreme(x) title "alpha = 0.5, u = 1.0", \
  231.                       alpha = 1.0, u = 0.0, cextreme(x) title "alpha = 1.0, u = 0.0"
  232. pause -1 "Hit return to continue"
  233.  
  234. # F PDF and CDF
  235. #df1 = 5.0; df2 = 9.0
  236. #mu = df2 < 2.0 ? 1.0 : df2 / (df2 - 2.0)
  237. #sigma = df2 < 4.0 ? 1.0 : mu * sqrt(2.0 * (df1 + df2 - 2.0) / (df1 * (df2 - 4.0)))
  238. #xmin = mu - 4.0 * sigma
  239. #xmin = xmin < 0 ? 0 : xmin
  240. #xmax = mu + 4.0 * sigma
  241. #Mode of F PDF used
  242. #ymax = df1 < 3.0 ? 1.0 : 1.1 * f((df1 / 2.0 - 1.0) / (df1 / 2.0 + df1 / df2))
  243. set key
  244. set zeroaxis
  245. #set xrange [xmin : xmax]
  246. #set yrange [0 : ymax]
  247. set xlabel "x ->"
  248. set ylabel "probability density ->"
  249. set xtics
  250. set ytics
  251. set format x "%.1f"
  252. set format y "%.2f"
  253. set sample 100
  254. set title "F PDF"
  255. plot [0:4] [0:0.8] df1 = 5.0, df2 = 9.0, f(x) title "df1 = 5, df2 = 9", \
  256.                    df1 = 7.0, df2 = 6.0, f(x) title "df1 = 7, df2 = 6"
  257. pause -1 "Hit return to continue"
  258. set title "F CDF"
  259. plot [0:4] [0:1.1] df1 = 5.0, df2 = 9.0, cf(x) title "df1 = 5, df2 = 9", \
  260.                    df1 = 7.0, df2 = 6.0, cf(x) title "df1 = 7, df2 = 6"
  261. pause -1 "Hit return to continue"
  262.  
  263. # Gamma PDF and incomplete gamma CDF
  264. #rho = 0.5; lambda = 1.0
  265. #mu = rho / lambda
  266. #sigma = sqrt(rho) / lambda
  267. #xmin = mu - 4.0 * sigma
  268. #xmin = xmin < 0 ? 0 : xmin
  269. #xmax = mu + 4.0 * sigma
  270. #ymax = rho < 1.0 ? 2.0 : 1.1 * g((rho - 1.0) / lambda) #Mode of gamma pdf used
  271. set key
  272. set zeroaxis
  273. #set xrange [xmin: xmax]
  274. #set yrange [0: ymax]
  275. set xlabel "x ->"
  276. set ylabel "probability density ->"
  277. set xtics
  278. set ytics
  279. set format x "%.1f"
  280. set format y "%.1f"
  281. set sample 100
  282. set title "gamma PDF"
  283. plot [0:5] [0:1.5] rho = 0.5, lambda = 1.0, g(x) title "rho = 0.5, lambda = 1.0", \
  284.                    rho = 1.0, lambda = 1.0, g(x) title "rho = 1.0, lambda = 1.0", \
  285.                    rho = 2.0, lambda = 2.0, g(x) title "rho = 2.0, lambda = 2.0"
  286. pause -1 "Hit return to continue"
  287. set title "incomplete gamma CDF (lambda == 1.0)"
  288. plot [0:5] [0:1.1] rho = 0.5, cgamma(x) title "rho = 0.5", \
  289.                    rho = 1.0, cgamma(x) title "rho = 1.0", \
  290.                    rho = 2.0, cgamma(x) title "rho = 2.0"
  291. pause -1 "Hit return to continue"
  292.  
  293. # Geometric PDF and CDF
  294. p = 0.4
  295. mu = (1.0 - p) / p
  296. sigma = sqrt(mu / p)
  297. xmin = int(mu - 4.0 * sigma)
  298. xmin = xmin < 0 ? 0 : xmin
  299. xmax = int(mu + 4.0 * sigma)
  300. xinc = ceil((xmax - xmin) / 10)
  301. xinc = xinc > 1 ? xinc : 1
  302. ymax = 1.1 * geometric(mu - 1/p) #mode of gamma PDF used
  303. set nokey
  304. set nozeroaxis
  305. set xrange [xmin : xmax]
  306. set yrange [0 : ymax]
  307. set xlabel "k ->"
  308. set ylabel "probability density ->"
  309. set xtics xmin + 0.499, xinc, xmax
  310. set ytics 0, ymax / 10, ymax
  311. set format x "%2.0f"
  312. set format y "%3.2f"
  313. set sample (xmax - xmin) + 1
  314. set title "geometric PDF with p = 0.4"
  315. plot geometric(x) with steps
  316. pause -1 "Hit return to continue"
  317. set title "geometric CDF with p = 0.4"
  318. set yrange [0 : 1.1]
  319. set ytics 0, 1.1 / 10.5, 1.1
  320. plot cgeometric(x) with steps
  321. pause -1 "Hit return to continue"
  322.  
  323. # Half normal PDF and CDF
  324. mu = sqrt2invpi
  325. sigma = 1.0
  326. s = sigma*sqrt(1.0 - 2.0/pi)
  327. xmin = 0.0
  328. xmax = mu + 4.0 * s
  329. ymax = 1.1 * halfnormal(0) #Mode of half normal PDF used
  330. set nokey
  331. set zeroaxis
  332. set xrange [xmin: xmax]
  333. set yrange [0: ymax]
  334. set xlabel "x ->"
  335. set ylabel "probability density ->"
  336. set xtics
  337. set ytics
  338. set format x "%.1f"
  339. set format y "%.1f"
  340. set sample 100
  341. set title "half normal PDF, sigma = 1.0"
  342. plot halfnormal(x)
  343. pause -1 "Hit return to continue"
  344. set title "half normal CDF, sigma = 1.0"
  345. set yrange [0:1.1]
  346. plot chalfnormal(x)
  347. pause -1 "Hit return to continue"
  348.  
  349. # Hypergeometric PDF and CPF
  350. nn = 75; mm = 25; n = 10
  351. p = real(mm) / nn
  352. mu = n * p
  353. sigma = sqrt(real(nn - n) / (nn - 1.0) * n * p * (1.0 - p))
  354. xmin = int(mu - 4.0 * sigma)
  355. xmin = xmin < 0 ? 0 : xmin
  356. xmax = int(mu + 4.0 * sigma)
  357. xinc = ceil((xmax - xmin) / 10)
  358. xinc = xinc > 1 ? xinc : 1
  359. ymax = 1.1 * hypgeo(mu) #mode of binomial PDF used
  360. set nokey
  361. set nozeroaxis
  362. set xrange [xmin : xmax]
  363. set yrange [0 : ymax]
  364. set xlabel "k ->"
  365. set ylabel "probability density ->"
  366. set xtics xmin + 0.499, xinc, xmax
  367. set ytics 0, ymax / 10, ymax
  368. set format x "%2.0f"
  369. set format y "%3.2f"
  370. set sample (xmax - xmin) + 1
  371. set title "hypergeometric PDF with nn = 75, mm = 25, n = 10"
  372. plot hypgeo(x) with steps
  373. pause -1 "Hit return to continue"
  374. set yrange [0 : 1.1]
  375. set ytics 0, 1.1 / 10.5, 1.1
  376. set title "hypergeometric CDF with nn = 75, mm = 25, n = 10"
  377. plot chypgeo(x) with steps
  378. pause -1 "Hit return to continue"
  379.  
  380. # Laplace PDF
  381. a = 0.0; b = 1.0
  382. mu = a
  383. sigma = sqrt(2.0) * b
  384. xmin = mu - 4.0 * sigma
  385. xmax = mu + 4.0 * sigma
  386. ymax = 1.1 * laplace(a) #Mode of laplace PDF used
  387. set nokey
  388. set zeroaxis
  389. set xrange [xmin: xmax]
  390. set yrange [0: ymax]
  391. set xlabel "x ->"
  392. set ylabel "probability density ->"
  393. set xtics
  394. set ytics
  395. set format x "%.1f"
  396. set format y "%.2f"
  397. set sample 100
  398. set title "laplace (or double exponential) PDF with a = 0, b = 1"
  399. plot laplace(x)
  400. pause -1 "Hit return to continue"
  401. set title "laplace (or double exponential) CDF with a = 0, b = 1"
  402. set yrange [0: 1.1]
  403. plot claplace(x)
  404. pause -1 "Hit return to continue"
  405.  
  406. # Logistic PDF and CDF
  407. a = 0.0; lambda = 2.0
  408. mu = a
  409. sigma = pi / (sqrt(3.0) * lambda)
  410. xmin = mu - 4.0 * sigma
  411. xmax = mu + 4.0 * sigma
  412. ymax = 1.1 * logistic(mu) #Mode of logistic PDF used
  413. set nokey
  414. set zeroaxis
  415. set xrange [xmin: xmax]
  416. set yrange [0: ymax]
  417. set nokey
  418. set zeroaxis
  419. set xlabel "x ->"
  420. set ylabel "probability density ->"
  421. set xtics
  422. set ytics
  423. set format x "%.1f"
  424. set format y "%.1f"
  425. set sample 100
  426. set title "logistic PDF with a = 0, lambda = 2"
  427. plot logistic(x)
  428. pause -1 "Hit return to continue"
  429. set title "logistic CDF with a = 0, lambda = 2"
  430. set yrange [0: 1.1]
  431. plot clogistic(x)
  432. pause -1 "Hit return to continue"
  433.  
  434. # Lognormal PDF and CDF
  435. mu = 1.0; sigma = 0.5
  436. m = exp(mu + 0.5 * sigma**2)
  437. s = sqrt(exp(2.0 * mu + sigma**2) * (2.0 * exp(sigma) - 1.0))
  438. xmin = m - 4.0 * s
  439. xmin = xmin < 0 ? 0 : xmin
  440. xmax = m + 4.0 * s
  441. ymax = 1.1 * lognormal(exp(mu - sigma**2)) #Mode of lognormal PDF used
  442. set nokey
  443. set zeroaxis
  444. set xrange [xmin: xmax]
  445. set yrange [0: ymax]
  446. set xlabel "x ->"
  447. set ylabel "probability density ->"
  448. set xtics
  449. set ytics
  450. set format x "%.2f"
  451. set format y "%.2f"
  452. set sample 100
  453. set title "lognormal PDF with mu = 1.0, sigma = 0.5"
  454. plot lognormal(x)
  455. pause -1 "Hit return to continue"
  456. set title "lognormal CDF with mu = 1.0, sigma = 0.5"
  457. set yrange [0: 1.1]
  458. plot clognormal(x)
  459. pause -1 "Hit return to continue"
  460.  
  461. # Maxwell PDF
  462. #a = 0.1
  463. #mu = 2.0 / sqrt(pi) / a
  464. #sigma = sqrt(3.0 - 8.0/pi) / a
  465. #xmin = mu - 4.0 * sigma
  466. #xmin = xmin < 0 ? 0 : xmin
  467. #xmax = mu + 4.0 * sigma
  468. #ymax = 1.1 * maxwell(1.0 / a) #Mode of maxwell PDF used
  469. set key
  470. set zeroaxis
  471. #set xrange[xmin: xmax]
  472. #set yrange[0: ymax]
  473. set xlabel "x ->"
  474. set ylabel "probability density ->"
  475. set xtics
  476. set ytics
  477. set format x "%.1f"
  478. set format y "%.1f"
  479. set sample 100
  480. set title "maxwell PDF"
  481. plot [0:6] [0:1.4] a = 1.5, maxwell(x) title "a = 1.5", \
  482.                    a = 1.0, maxwell(x) title "a = 1.0", \
  483.                    a = 0.5, maxwell(x) title "a = 0.5"
  484. pause -1 "Hit return to continue"
  485. set title "maxwell CDF"
  486. plot [0:6] [0:1.1] a = 1.5, cmaxwell(x) title "a = 1.5", \
  487.                    a = 1.0, cmaxwell(x) title "a = 1.0", \
  488.                    a = 0.5, cmaxwell(x) title "a = 0.5"
  489. pause -1 "Hit return to continue"
  490.  
  491. # Negative binomial PDF and CDF
  492. r = 8; p = 0.4
  493. mu = r * (1.0 - p) / p
  494. sigma = sqrt(mu / p)
  495. xmin = int(mu - 4.0 * sigma)
  496. xmin = xmin < 0 ? 0 : xmin
  497. xmax = int(mu + 4.0 * sigma)
  498. xinc = ceil((xmax - xmin) / 10)
  499. xinc = xinc > 1 ? xinc : 1
  500. ymax = 1.1 * negbin(mu - 1.0/p) #mode of gamma PDF used
  501. set nokey
  502. set nozeroaxis
  503. set xrange [xmin : xmax]
  504. set yrange [0 : ymax]
  505. set xlabel "k ->"
  506. set ylabel "probability density ->"
  507. set xtics xmin + 0.499, xinc, xmax
  508. set ytics 0, ymax / 10, ymax
  509. set format x "%2.0f"
  510. set format y "%3.2f"
  511. set sample (xmax - xmin) + 1
  512. set title "negative binomial (or pascal or polya) PDF with r = 8, p = 0.4"
  513. plot negbin(x) with steps
  514. pause -1 "Hit return to continue"
  515. set yrange [0 : 1.1]
  516. set ytics 0, 1.1 / 10.5, 1.1
  517. set title "negative binomial (or pascal or polya) CDF with r = 8, p = 0.4"
  518. plot cnegbin(x) with steps
  519. pause -1 "Hit return to continue"
  520.  
  521. # Negative exponential PDF and CDF
  522. lambda = 2.0
  523. mu = 1.0 / lambda
  524. sigma = 1.0 / lambda
  525. xmax =  mu + 4.0 * sigma
  526. ymax = lambda #No mode
  527. set nokey
  528. set zeroaxis
  529. set xrange [0: xmax]
  530. set yrange [0: ymax]
  531. set xlabel "x ->"
  532. set ylabel "probability density ->"
  533. set xtics
  534. set ytics
  535. set format x "%.2f"
  536. set format y "%.1f"
  537. set sample 100
  538. set title "negative exponential (or exponential) PDF with lambda = 2.0"
  539. plot nexp(x)
  540. pause -1 "Hit return to continue"
  541. set title "negative exponential (or exponential) CDF with lambda = 2.0"
  542. set yrange [0: 1.1]
  543. plot cnexp(x)
  544. pause -1 "Hit return to continue"
  545.  
  546. # Normal PDF and CDF
  547. #mu = 0.0; sigma = 1.0
  548. #xmin = mu - 4.0 * sigma
  549. #xmax = mu + 4.0 * sigma
  550. #ymax = 1.1 * normal(mu) #Mode of normal PDF used
  551. set key
  552. set zeroaxis
  553. #set xrange [xmin: xmax]
  554. #set yrange [0: ymax]
  555. set xlabel "x ->"
  556. set ylabel "probability density ->"
  557. set xtics
  558. set ytics
  559. set format x "%.1f"
  560. set format y "%.1f"
  561. set sample 100
  562. set title "normal (also called gauss or bell-curved) PDF"
  563. plot [-4:4] [0:1] mu = 0, sigma = 1.0, normal(x) title "mu = 0, sigma = 1.0", \
  564.                   mu = 2, sigma = 0.5, normal(x) title "mu = 2, sigma = 0.5", \
  565.                   mu = 1, sigma = 2.0, normal(x) title "mu = 1, sigma = 2.0"
  566. pause -1 "Hit return to continue"
  567. set title "normal (also called gauss or bell-curved) CDF"
  568. plot [-4:4] [0:1.1] mu = 0, sigma = 1.0, cnormal(x) title "mu = 0, sigma = 1.0", \
  569.                     mu = 2, sigma = 0.5, cnormal(x) title "mu = 2, sigma = 0.5", \
  570.                     mu = 1, sigma = 2.0, cnormal(x) title "mu = 1, sigma = 2.0"
  571. pause -1 "Hit return to continue"
  572.  
  573. # Pareto PDF and CDF
  574. a = 1.0; b = 3.0
  575. mu = a * b / (b - 1.0)
  576. sigma = a * sqrt(b) / (sqrt(b - 2.0) * (b - 1.0))
  577. xmin = mu - 4.0 * sigma
  578. xmin = xmin < 0 ? 0 : xmin
  579. xmax = mu + 4.0 * sigma
  580. ymax = 1.1 * pareto(a) #mode of pareto PDF used
  581. set nokey
  582. set zeroaxis
  583. set xrange [xmin: xmax]
  584. set yrange [0: ymax]
  585. set xlabel "x ->"
  586. set ylabel "probability density ->"
  587. set xtics
  588. set ytics
  589. set format x "%.1f"
  590. set format y "%.1f"
  591. set sample 500
  592. set title "pareto PDF with a = 1, b = 3"
  593. plot pareto(x)
  594. pause -1 "Hit return to continue"
  595. set title "pareto CDF with a = 1, b = 3"
  596. set yrange [0: 1.1]
  597. plot cpareto(x)
  598. pause -1 "Hit return to continue"
  599.  
  600. # Poisson PDF and CDF
  601. mu = 4.0
  602. sigma = sqrt(mu)
  603. xmin = int(mu - 4.0 * sigma)
  604. xmin = xmin < 0 ? 0 : xmin
  605. xmax = int(mu + 4.0 * sigma)
  606. xinc = ceil((xmax - xmin) / 10)
  607. xinc = xinc > 1 ? xinc : 1
  608. ymax = 1.1 * poisson(mu) #mode of poisson PDF used
  609. set nokey
  610. set nozeroaxis
  611. set xrange [xmin : xmax]
  612. set yrange [0 : ymax]
  613. set xlabel "k ->"
  614. set ylabel "probability density ->"
  615. set xtics xmin + 0.499, xinc, xmax
  616. set ytics 0, ymax / 10, ymax
  617. set format x "%2.0f"
  618. set format y "%3.2f"
  619. set sample (xmax - xmin) + 1
  620. set title "poisson PDF with mu = 4.0"
  621. plot poisson(x) with steps
  622. pause -1 "Hit return to continue"
  623. set yrange [0 : 1.1]
  624. set ytics 0, 1.1 / 10.5, 1.1
  625. set title "poisson CDF with mu = 4.0"
  626. plot cpoisson(x) with steps
  627. pause -1 "Hit return to continue"
  628.  
  629. # Rayleigh PDF and CDF
  630. lambda = 2.0
  631. mu = 0.5 * sqrt(pi / lambda)
  632. sigma = sqrt((1.0 - pi / 4.0) / lambda)
  633. xmax = mu + 4.0 * sigma
  634. ymax = 1.1 * rayleigh(1.0 / sqrt(2.0 * lambda)) #Mode of rayleigh PDF used
  635. set nokey
  636. set zeroaxis
  637. set xrange [0: xmax]
  638. set yrange [0: ymax]
  639. set xlabel "x ->"
  640. set ylabel "probability density ->"
  641. set xtics
  642. set ytics
  643. set format x "%.2f"
  644. set format y "%.1f"
  645. set sample 100
  646. set title "rayleigh PDF with lambda = 2.0"
  647. plot rayleigh(x)
  648. pause -1 "Hit return to continue"
  649. set title "rayleigh CDF with lambda = 2.0"
  650. set yrange [0: 1.1]
  651. plot crayleigh(x)
  652. pause -1 "Hit return to continue"
  653.  
  654. # Sine PDF and CDF
  655. #a = 3.0; n = 2
  656. #mu = a / 2.0
  657. #sigma = sqrt(a * a / 3.0 * (1.0 - 3.0 / (2.0 * n * n * pi * pi)) - mu * mu)
  658. #xmin = 0.0
  659. #xmax = a
  660. #ymax = 1.1 * 2.0 / a #Mode of sine PDF used
  661. set key
  662. set zeroaxis
  663. #set xrange [xmin: xmax]
  664. #set yrange [0: ymax]
  665. set xlabel "x ->"
  666. set ylabel "probability density ->"
  667. set xtics
  668. set ytics
  669. set format x "%.2f"
  670. set format y "%.1f"
  671. set sample 100
  672. set title "sine PDF"
  673. plot [0:2] [0:1.1] a = 2.0, n = 1, sine(x) title "a = 2.0, n = 1", \
  674.                    a = 2.0, n = 3, sine(x) title "a = 2.0, n = 3"
  675. pause -1 "Hit return to continue"
  676. set title "sine CDF"
  677. plot [0:2] [0:1.1] a = 2.0, n = 1, csine(x) title "a = 2.0, n = 1", \
  678.                    a = 2.0, n = 3, csine(x) title "a = 2.0, n = 3"
  679. pause -1 "Hit return to continue"
  680.  
  681. # t PDF and CDF
  682. df1 = 3.0
  683. mu = 0.0
  684. sigma = df1 > 2.0 ? sqrt(df1 / (df1 - 2.0)) : 1.0
  685. xmin = mu - 4.0 * sigma
  686. xmax = mu + 4.0 * sigma
  687. ymax = 1.1 * t(mu) #Mode of t PDF used
  688. set nokey
  689. set zeroaxis
  690. set xrange [xmin: xmax]
  691. set yrange [0: ymax]
  692. set xlabel "x ->"
  693. set ylabel "probability density ->"
  694. set xtics
  695. set ytics
  696. set format x "%.1f"
  697. set format y "%.2f"
  698. set sample 100
  699. set title "t PDF with df1 = 3.0"
  700. plot t(x)
  701. pause -1 "Hit return to continue"
  702. set title "t CDF with df1 = 3.0"
  703. set yrange [0: 1.1]
  704. plot ct(x)
  705. pause -1 "Hit return to continue"
  706.  
  707. # Thanks to efrank@upenn5.hep.upenn.edu for telling us about this
  708. # triangular PDF and CDF
  709. m = 3.0
  710. g = 2.0
  711. mu = m
  712. sigma = g/sqrt(6.0)
  713. xmin = m - g
  714. xmax = m + g
  715. ymax = 1.1 * triangular(m) #Mode of triangular PDF used
  716. set nokey
  717. set zeroaxis
  718. set xrange [xmin: xmax]
  719. set yrange [0: ymax]
  720. set xlabel "x ->"
  721. set ylabel "probability density ->"
  722. set xtics
  723. set ytics
  724. set format x "%.1f"
  725. set format y "%.2f"
  726. set sample 100
  727. set title "triangular PDF with m = 3.0, g = 2.0"
  728. plot triangular(x)
  729. pause -1 "Hit return to continue"
  730. set title "triangular CDF with m = 3.0, g = 2.0"
  731. set yrange [0: 1.1]
  732. plot ctriangular(x)
  733. pause -1 "Hit return to continue"
  734.  
  735. # Uniform PDF and CDF
  736. a = -2.0; b= 2.0
  737. mu = (a + b) / 2.0
  738. sigma = (b - a) / sqrt(12.0)
  739. xmin = a
  740. xmax = b
  741. ymax = 1.1 * uniform(mu) #No mode
  742. set nokey
  743. set zeroaxis
  744. set xrange [xmin: xmax]
  745. set yrange [0: ymax]
  746. set xlabel "x ->"
  747. set ylabel "probability density ->"
  748. set xtics
  749. set ytics
  750. set format x "%.2f"
  751. set format y "%.2f"
  752. set sample 100
  753. set title "uniform PDF with a = -2.0, b = 2.0"
  754. plot uniform(x)
  755. pause -1 "Hit return to continue"
  756. set title "uniform CDF with a = -2.0, b = 2.0"
  757. set yrange [0: 1.1]
  758. plot cuniform(x)
  759. pause -1 "Hit return to continue"
  760.  
  761. # Weibull PDF and CDF
  762. #lambda = 1.0; n = 1.5
  763. #mu = lambda**(-1.0 / n) * gamma(1.0 / n) / n
  764. #sigma = sqrt(2.0 * lambda**(-2.0 / n) * gamma(2.0 / n) / n - mu * mu)
  765. #xmin = mu - 4.0 * sigma
  766. #xmin = xmin < 0 ? 0 : xmin
  767. #xmax = mu + 4.0 * sigma
  768. #Mode of weibull PDF used
  769. #ymax = 1.1 * (n > 1.0 ? weibull(((n - 1.0) / (lambda * n))**(1.0 / n)) : 2.0)
  770. set key
  771. set zeroaxis
  772. #set xrange [xmin : xmax]
  773. #set yrange [0: ymax]
  774. set xlabel "x ->"
  775. set ylabel "probability density ->"
  776. set xtics
  777. set ytics
  778. set format x "%.2f"
  779. set format y "%.1f"
  780. set sample 100
  781. set title "weibull PDF"
  782. plot [0:2] [0:1.5] lambda = 1, n = 0.5, weibull(x) title "lambda = 1, n = 0.5", \
  783.                    lambda = 1, n = 1.0, weibull(x) title "lambda = 1, n = 1.0", \
  784.                    lambda = 1, n = 2.0, weibull(x) title "lambda = 1, n = 2.0", \
  785.                    lambda = 3, n = 2.0, weibull(x) title "lambda = 3, n = 2.0"
  786. pause -1 "Hit return to continue"
  787. set title "weibull CDF"
  788. plot [0:3] [0:1.2] lambda = 1, n = 0.5, cweibull(x) title "lambda = 1, n = 0.5", \
  789.                    lambda = 1, n = 1.0, cweibull(x) title "lambda = 1, n = 1.0", \
  790.                    lambda = 1, n = 2.0, cweibull(x) title "lambda = 1, n = 2.0", \
  791.                    lambda = 3, n = 2.0, cweibull(x) title "lambda = 3, n = 2.0"
  792. load "defaults.ini"
  793.